MacBook Air にMacPortsを使ってPostgreSQLをインストール

iTerm / Carbon Emacs

本当はやりたくなかったんですが、現在動いている幾つかのプロジェクトで『データベースをブン回す』必要のある案件があり、致し方なく手元のマシンに環境をインストールしました。

作業自体はきわめて簡単(ホント、皆さんに感謝です)で、MacPortsをインストールした後でPostgreSQLをインストールしただけ。 MacPortsは最新の1.6.0をインストールしました。 単純にサイトからLeopard(Universal)をダウンロードしてインストーラに従っただけで、選択肢も何も無し。終了に少し時間が掛かっていましたが特に問題無いようでした。


インストール完了後は、コマンド検索パスを書き直すために.profileを作って、PATHの先頭に/opt/local/binと/opt/local/sbin/を埋め込んだだけです。

$ cat .profile
export PATH=/opt/local/bin:/opt/local/sbin:$PATH

続いて、PostgreSQLを探してみたところ、最新は8.3だったので、下記の要領でインストールしました。 いや〜簡単すぎる。

$ sudo port install postgresql83
$ sudo port install postgresql83-server

その後は基本的なDBを作るステップ。 これはインストール後のインストラクションをそのままコピペしました。

$ sudo mkdir -p /opt/local/var/db/postgresql83/defaultdb
$ sudo chown postgres:postgres /opt/local/var/db/postgresql83/defaultdb
$ sudo su postgres -c ‘/opt/local/lib/postgresql83/bin/initdb -D /opt/local/var/db/postgresql83/defaultdb’

最後のinitdbは最初は「パーミッションが無い!」と言われて失敗したのですが、「そんなはず無いのになぁ〜」と思って再度実行してみたらすんなり動いてしまいました。 まぁ、手元パソコンなので、理由を気にする時間がもったいないので、サーバを起動させます。

$ sudo su postgres -c ‘/opt/local/lib/postgresql83/bin/postgres -D /opt/local/var/db/postgresql83/defaultdb &’

こんな感じで無事起動。 PostgreSQL関連は/opt/local/lib/postgresql83/にインストールされているので、先の.profileのコマンド検索パスに”/opt/local/lib/postgresql83/bin/”を追加して終了。

dscn0366.jpg

自分は基本的に最終的にサーバで動かすものは、最初からサーバで作るタイプです。 ずいぶん以前にJavaの開発案件で、Windows環境では問題なく動作するのにサーバに持って行ったら文字化けの嵐ってのを体験してから。 当時は情報もあまり無くて、この問題を解決するのにエライ苦労しましてしまったので、それ以来、最終動作させる環境で出来るだけ早くから開発するのをポリシーとしています。

(実は私はサーバで作っていたのですが、パートナーがずっとWindows機で開発していて、納期ギリギリにサーバ上で動かしてみたらとんでもない事に! そこから徹夜の連続・・・ってのはウソですが、少し焦りました。 危惧はあったのですが、彼は知識も豊富な人間なのでよもやそんな基礎的な事を知らないはずが無いと思って、開発途中は特にコメントしていませんでした。 しかも悪いことに彼がメインパートを担当していたので、開発途中でのマージしての動作確認も彼のWindowsパソコンで行われていたんですよねー。 知識と現場の微妙な差異が、こんな形で現れてしまうんだなぁと、当時思ったのを覚えています。)

そのため、手元のPCにサーバ環境を持たせるのが嫌いなのです。 もちろん、今では当時のそんな問題は解決しているのは知識としては知っているのですが、まぁ一種のトラウマ(?)なんでしょうねぇ。

Posted on Friday, February 22nd, 2008 at 1:25 PM. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply